home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / isccc / cc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-09-17  |  3.1 KB  |  110 lines

  1. /*
  2.  * Portions Copyright (C) 2004, 2005  Internet Systems Consortium, Inc. ("ISC")
  3.  * Portions Copyright (C) 2001  Internet Software Consortium.
  4.  * Portions Copyright (C) 2001  Nominum, Inc.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software for any
  7.  * purpose with or without fee is hereby granted, provided that the above
  8.  * copyright notice and this permission notice appear in all copies.
  9.  *
  10.  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC AND NOMINUM DISCLAIMS ALL
  11.  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
  12.  * OF MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY
  13.  * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  14.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  15.  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  16.  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  17.  */
  18.  
  19. /* $Id: cc.h,v 1.4.18.2 2005/04/29 00:17:13 marka Exp $ */
  20.  
  21. #ifndef ISCCC_CC_H
  22. #define ISCCC_CC_H 1
  23.  
  24. /*! \file */
  25.  
  26. #include <isc/lang.h>
  27. #include <isccc/types.h>
  28.  
  29. ISC_LANG_BEGINDECLS
  30.  
  31. /*% Maximum Datagram Package */
  32. #define ISCCC_CC_MAXDGRAMPACKET        4096
  33.  
  34. /*% Message Type String */
  35. #define ISCCC_CCMSGTYPE_STRING        0x00
  36. /*% Message Type Binary Data */
  37. #define ISCCC_CCMSGTYPE_BINARYDATA    0x01
  38. /*% Message Type Table */
  39. #define ISCCC_CCMSGTYPE_TABLE        0x02
  40. /*% Message Type List */
  41. #define ISCCC_CCMSGTYPE_LIST        0x03
  42.  
  43. /*% Send to Wire */
  44. isc_result_t
  45. isccc_cc_towire(isccc_sexpr_t *alist, isccc_region_t *target,
  46.           isccc_region_t *secret);
  47.  
  48. /*% Get From Wire */
  49. isc_result_t
  50. isccc_cc_fromwire(isccc_region_t *source, isccc_sexpr_t **alistp,
  51.         isccc_region_t *secret);
  52.  
  53. /*% Create Message */
  54. isc_result_t
  55. isccc_cc_createmessage(isc_uint32_t version, const char *from, const char *to,
  56.              isc_uint32_t serial, isccc_time_t now,
  57.              isccc_time_t expires, isccc_sexpr_t **alistp);
  58.  
  59. /*% Create Acknowledgment */
  60. isc_result_t
  61. isccc_cc_createack(isccc_sexpr_t *message, isc_boolean_t ok,
  62.          isccc_sexpr_t **ackp);
  63.  
  64. /*% Is Ack? */
  65. isc_boolean_t
  66. isccc_cc_isack(isccc_sexpr_t *message);
  67.  
  68. /*% Is Reply? */
  69. isc_boolean_t
  70. isccc_cc_isreply(isccc_sexpr_t *message);
  71.  
  72. /*% Create Response */
  73. isc_result_t
  74. isccc_cc_createresponse(isccc_sexpr_t *message, isccc_time_t now,
  75.               isccc_time_t expires, isccc_sexpr_t **alistp);
  76.  
  77. /*% Define String */
  78. isccc_sexpr_t *
  79. isccc_cc_definestring(isccc_sexpr_t *alist, const char *key, const char *str);
  80.  
  81. /*% Define uint 32 */
  82. isccc_sexpr_t *
  83. isccc_cc_defineuint32(isccc_sexpr_t *alist, const char *key, isc_uint32_t i);
  84.  
  85. /*% Lookup String */
  86. isc_result_t
  87. isccc_cc_lookupstring(isccc_sexpr_t *alist, const char *key, char **strp);
  88.  
  89. /*% Lookup uint 32 */
  90. isc_result_t
  91. isccc_cc_lookupuint32(isccc_sexpr_t *alist, const char *key,
  92.             isc_uint32_t *uintp);
  93.  
  94. /*% Create Symbol Table */
  95. isc_result_t
  96. isccc_cc_createsymtab(isccc_symtab_t **symtabp);
  97.  
  98. /*% Clean up Symbol Table */
  99. void
  100. isccc_cc_cleansymtab(isccc_symtab_t *symtab, isccc_time_t now);
  101.  
  102. /*% Check for Duplicates */
  103. isc_result_t
  104. isccc_cc_checkdup(isccc_symtab_t *symtab, isccc_sexpr_t *message,
  105.            isccc_time_t now);
  106.  
  107. ISC_LANG_ENDDECLS
  108.  
  109. #endif /* ISCCC_CC_H */
  110.